package com.ruoyi.instrument.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 仪器信息对象 gc_instrument
 *
 * @author ruoyi
 * @date 2025-05-07
 */
@ApiModel
public class Instrument extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @ApiModelProperty(value = "${comment}")
    private Long id;

    /**
     * 状态
     */
    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private Long status;

    /**
     * 仪器编号
     */
    @Excel(name = "设备编号")
    @ApiModelProperty(value = "仪器编号")
    private String instrumentNumber;

    /**
     * 仪器名称
     */
    @Excel(name = "名称")
    @ApiModelProperty(value = "仪器名称")
    private String instrumentName;

    /**
     * 规格型号
     */
    @Excel(name = "规格型号")
    @ApiModelProperty(value = "规格型号")
    private String specification;

    /**
     * 名牌号
     */
    @Excel(name = "设备名牌号")
    @ApiModelProperty(value = "名牌号")
    private String brandNumber;

    /**
     * 测量范围
     */
    @Excel(name = "测量范围")
    @ApiModelProperty(value = "测量范围")
    private String measuringRange;

    /**
     * 溯源方式
     */
    @Excel(name = "溯源方式")
    @ApiModelProperty(value = "溯源方式")
    private String traceabilityType;

    /**
     * 证书编号
     */
    @Excel(name = "证书编号")
    @ApiModelProperty(value = "证书编号")
    private String certificateNo;

    /**
     * 检定日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检定日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "检定日期")
    private Date verificationTime;

    /**
     * 检定单位
     */
    @Excel(name = "检定单位")
    @ApiModelProperty(value = "检定单位")
    private String verificationUnit;

    /**
     * 下个检定日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下个应检日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "下个检定日期")
    private Date nextTime;

    /**
     * 溯源有限期
     */
    @Excel(name = "溯源有限期")
    @ApiModelProperty(value = "溯源有限期")
    private String traceabilityPeriod;

    /**
     * 生产厂家
     */
    @Excel(name = "生产厂家")
    @ApiModelProperty(value = "生产厂家")
    private String manufacturer;

    /**
     * 存放位置
     */
    @Excel(name = "存放位置")
    @ApiModelProperty(value = "存放位置")
    private String position;

    /**
     * 数量
     */
    @Excel(name = "数量")
    @ApiModelProperty(value = "数量")
    private String number;

    /**
     * 设备单价
     */
    @Excel(name = "设备单价")
    @ApiModelProperty(value = "设备单价")
    private String devicePrice;

    /**
     * 销售单位
     */
    @Excel(name = "销售单位")
    @ApiModelProperty(value = "销售单位")
    private String salesUnit;

    /**
     * 固定资产编号
     */
    @Excel(name = "固定资产编号")
    @ApiModelProperty(value = "固定资产编号")
    private String fixedNumber;

    /**
     * 发票日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发票日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "发票日期")
    private Date invoiceTime;

    /**
     * 物品类型
     */
    @Excel(name = "设备/配件")
    @ApiModelProperty(value = "物品类型")
    private String itemType;

    /**
     * 部门
     */
    @Excel(name = "部门")
    @ApiModelProperty(value = "部门")
    private String department;

    /**
     * 启用日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = " 启用日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = " 启用日期")
    private Date enableTime;

    /**
     * 合格证文件
     */
    @Excel(name = "合格证文件")
    @ApiModelProperty(value = "合格证文件")
    private String certificateFile;

    /**
     * 发票文件
     */
    @Excel(name = "发票文件")
    @ApiModelProperty(value = "发票文件")
    private String invoiceFile;

    /**
     * 说明书文件
     */
    @Excel(name = "说明书文件")
    @ApiModelProperty(value = "说明书文件")
    private String instructionsFile;

    private String usePerson;

    private String startCreateTime;

    private String endCreateTime;

    private String instrumentId;

    private String purpose;

    public String[] getPurposeList() {
        return purposeList;
    }

    public void setPurposeList(String[] purposeList) {
        this.purposeList = purposeList;
    }

    private String[] purposeList;

    public String getPurpose() {
        return purpose;
    }

    public void setPurpose(String purpose) {
        this.purpose = purpose;
    }

    public String getInstrumentId() {
        return instrumentId;
    }

    public void setInstrumentId(String instrumentId) {
        this.instrumentId = instrumentId;
    }

    public String getUsePerson() {
        return usePerson;
    }

    public void setUsePerson(String usePerson) {
        this.usePerson = usePerson;
    }

    public String getStartCreateTime() {
        return startCreateTime;
    }

    public void setStartCreateTime(String startCreateTime) {
        this.startCreateTime = startCreateTime;
    }

    public String getEndCreateTime() {
        return endCreateTime;
    }

    public void setEndCreateTime(String endCreateTime) {
        this.endCreateTime = endCreateTime;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public void setInstrumentNumber(String instrumentNumber) {
        this.instrumentNumber = instrumentNumber;
    }

    public String getInstrumentNumber() {
        return instrumentNumber;
    }

    public void setInstrumentName(String instrumentName) {
        this.instrumentName = instrumentName;
    }

    public String getInstrumentName() {
        return instrumentName;
    }

    public void setSpecification(String specification) {
        this.specification = specification;
    }

    public String getSpecification() {
        return specification;
    }

    public void setBrandNumber(String brandNumber) {
        this.brandNumber = brandNumber;
    }

    public String getBrandNumber() {
        return brandNumber;
    }

    public void setMeasuringRange(String measuringRange) {
        this.measuringRange = measuringRange;
    }

    public String getMeasuringRange() {
        return measuringRange;
    }

    public void setTraceabilityType(String traceabilityType) {
        this.traceabilityType = traceabilityType;
    }

    public String getTraceabilityType() {
        return traceabilityType;
    }

    public void setCertificateNo(String certificateNo) {
        this.certificateNo = certificateNo;
    }

    public String getCertificateNo() {
        return certificateNo;
    }

    public void setVerificationTime(Date verificationTime) {
        this.verificationTime = verificationTime;
    }

    public Date getVerificationTime() {
        return verificationTime;
    }

    public void setVerificationUnit(String verificationUnit) {
        this.verificationUnit = verificationUnit;
    }

    public String getVerificationUnit() {
        return verificationUnit;
    }

    public void setNextTime(Date nextTime) {
        this.nextTime = nextTime;
    }

    public Date getNextTime() {
        return nextTime;
    }

    public void setTraceabilityPeriod(String traceabilityPeriod) {
        this.traceabilityPeriod = traceabilityPeriod;
    }

    public String getTraceabilityPeriod() {
        return traceabilityPeriod;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    public String getManufacturer() {
        return manufacturer;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public String getPosition() {
        return position;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getNumber() {
        return number;
    }

    public void setDevicePrice(String devicePrice) {
        this.devicePrice = devicePrice;
    }

    public String getDevicePrice() {
        return devicePrice;
    }

    public void setSalesUnit(String salesUnit) {
        this.salesUnit = salesUnit;
    }

    public String getSalesUnit() {
        return salesUnit;
    }

    public void setFixedNumber(String fixedNumber) {
        this.fixedNumber = fixedNumber;
    }

    public String getFixedNumber() {
        return fixedNumber;
    }

    public void setInvoiceTime(Date invoiceTime) {
        this.invoiceTime = invoiceTime;
    }

    public Date getInvoiceTime() {
        return invoiceTime;
    }

    public void setItemType(String itemType) {
        this.itemType = itemType;
    }

    public String getItemType() {
        return itemType;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getDepartment() {
        return department;
    }

    public void setEnableTime(Date enableTime) {
        this.enableTime = enableTime;
    }

    public Date getEnableTime() {
        return enableTime;
    }

    public void setCertificateFile(String certificateFile) {
        this.certificateFile = certificateFile;
    }

    public String getCertificateFile() {
        return certificateFile;
    }

    public void setInvoiceFile(String invoiceFile) {
        this.invoiceFile = invoiceFile;
    }

    public String getInvoiceFile() {
        return invoiceFile;
    }

    public void setInstructionsFile(String instructionsFile) {
        this.instructionsFile = instructionsFile;
    }

    public String getInstructionsFile() {
        return instructionsFile;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("status", getStatus())
                .append("instrumentNumber", getInstrumentNumber())
                .append("instrumentName", getInstrumentName())
                .append("specification", getSpecification())
                .append("brandNumber", getBrandNumber())
                .append("measuringRange", getMeasuringRange())
                .append("traceabilityType", getTraceabilityType())
                .append("certificateNo", getCertificateNo())
                .append("verificationTime", getVerificationTime())
                .append("verificationUnit", getVerificationUnit())
                .append("nextTime", getNextTime())
                .append("traceabilityPeriod", getTraceabilityPeriod())
                .append("manufacturer", getManufacturer())
                .append("position", getPosition())
                .append("number", getNumber())
                .append("devicePrice", getDevicePrice())
                .append("salesUnit", getSalesUnit())
                .append("fixedNumber", getFixedNumber())
                .append("invoiceTime", getInvoiceTime())
                .append("itemType", getItemType())
                .append("department", getDepartment())
                .append("enableTime", getEnableTime())
                .append("certificateFile", getCertificateFile())
                .append("invoiceFile", getInvoiceFile())
                .append("instructionsFile", getInstructionsFile())
                .append("usePerson", getUsePerson())
                .append("startCreateTime ", getStartCreateTime())
                .append("endCreateTime ", getEndCreateTime ())
                .toString();
    }
}
